1. Technical Field
This invention generally relates to data processing, and more specifically relates to detection of resources in a logically partitioned computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources to different computing environments. The iSeries computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an iSeries computer system is desired, partition manager code (referred to as a “hypervisor” in iSeries terminology) is installed that allows defining different computing environments on the same platform. Once the partition manager is installed, logical partitions may be created that define different computing environments. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A computer system that includes multiple logical partitions typically shares resources between the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU allocated to each logical partition, with 33% of the memory allocated to the first logical partition and 67% of the memory allocated to the second logical partition, and with two different I/O slots allocated to the two logical partitions, one per partition. Once logical partitions are defined and shared resources are allocated to the logical partitions, each logical partition acts as a separate computer system. Thus, in the example above that has a single computer system with two logical partitions, the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
A problem with known logically partitioned computer systems occurs when certain conditions occur in I/O hardware that require the I/O to be reconfigured. For example, when I/O towers are added to an existing loop of towers, the loop may need to be rebalanced to optimize performance. A prior art method 200 is shown in FIG. 2. A hardware state is detected that requires I/O reconfiguration (step 210). The I/O is then reconfigured without suspending the affected logical partitions (i.e., the logical partitions that own the I/O that is reconfigured) (step 220). One known implementation of step 220 in FIG. 2 is shown in FIG. 3. The I/O to be reconfigured is first quiesced (step 320). Quiescing the I/O includes the steps of masking interrupt sources, disabling arbitration in affected I/O bridges, and waiting sufficient time that all DMA transfers in progress may complete. Once quiesced, the I/O is reconfigured (step 330). The I/O is then enabled for use (step 340).
Prior art method 200 does not stop logical partitions from executing. As a result, a phenomenon known as “ghost packets” can occur which may cause one or more invalid network packets as a result of the reconfiguration. Because the logical partitions are still running, one of the logical partitions may interpret a ghost packet as valid data, causing potential problems with data integrity. Without a way to reconfigure I/O in a logically partitioned computer system without interpreting ghost packets as valid data, the computer industry will continue to suffer from potential data integrity problems when I/O is reconfigured in a logically partitioned computer system.